package com.mzy.linear_struct.面试150题;

import java.util.Arrays;

/**
 * @Author: mizy3
 * @Date: 2024/08/14/下午9:56
 * @Description:
 */
public class Pro80删除有序数组中的重复项II {

    public int removeDuplicates(int[] nums) {
        int slow = 0, fast = 0;

        //          i
        // [1,1,2,2,2,3]
        //            j

        while (fast < nums.length) {
            // 如果 fast 的位置元素 和 slow - 2 处的元素不相同，则slow = fast
            if (slow < 2 || nums[slow - 2] != nums[fast]) {
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }

        return slow;
    }

    public static void main(String[] args) {
        System.out.println(new Pro80删除有序数组中的重复项II().removeDuplicates(new int[]{0, 0, 1, 1, 1, 1, 2, 3, 3}));
    }
}
